# Merecat

Guía de configuración de un servidor HTTP/HTTPS minimalista en Slackware.

## Servidor

Crear un certificado SSL autofirmado:

    cd /var/merecat/www
    sudo su
    mkdir private certs
    cp /etc/ssl/openssl.cnf .
    printf '[SAN]\nsubjectAltName=DNS:127.0.0.1' >> openssl.cnf
    openssl req -x509 -newkey rsa:4096 -nodes \
      -keyout private/server.key -new -out certs/server.pem \
      -subj /CN=127.0.0.1 -reqexts SAN -extensions SAN \
      -sha256 -days 3650 -config openssl.cnf
    openssl dhparam -out certs/dhparm.pem 4096
    rm openssl.cnf
    chmod 700 private certs
    chown nobody:nogroup -R private certs
    exit

Agregar la ejecución del init script de merecat durante el arranque del sistema en `/etc/rc.d/rc.local`:

    if [ -x /etc/rc.d/rc.merecat ]; then
      /etc/rc.d/rc.merecat start
    fi

Agregar la ejecución del init script para detener merecat durante el apagado del sistema en `/etc/rc.d/rc.local_shutdown`:

    if [ -x /etc/rc.d/rc.merecat ]; then
      /etc/rc.d/rc.merecat stop
    fi

Asignar permisos de ejecución a `/etc/rc.d/rc.local_shutdown`:

    sudo chmod 755 /etc/rc.d/rc.local_shutdown

Habilitar y ejecutar el init script de merecat para montar el servidor HTTP:

    sudo chmod 755 /etc/rc.d/rc.merecat
    sudo /etc/rc.d/rc.merecat start

Permitir conexiones entrantes para merecat desde el firewall:

    sudo ufw allow in on wlan0 to 192.168.1.10 port 80 proto tcp comment 'Merecat (HTTP)'
    sudo ufw allow in on wlan0 to 192.168.1.10 port 443 proto tcp comment 'Merecat (HTTPS)'

## Referencias

* [Merecat - Embedded Web Server.](https://github.com/troglobit/merecat)
* [merecat manpage - Simple, small and fast HTTP server.](https://manpages.ubuntu.com/manpages/lunar/en/man8/httpd.8.html)
* [merecat.conf manpage - Merecat httpd configuration file.](https://manpages.ubuntu.com/manpages/lunar/en/man5/merecat.conf.5.html)
* [Slackware - System Init.](http://www.slackware.com/config/init.php)
